﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum ВидыПодтверждающихДокументовОтпускаПоУходу
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"d188b892-82d0-46d3-b022-b3462cba2523\", \"Представление\":\"СвидетельствоОРождении\"}")]
		СвидетельствоОРождении = 0,//Свидетельство о рождении
		[EnumMember(Value = "{\"Ссылка\":\"ff7daf3d-fa37-482f-bcd0-8173e3a2d892\", \"Представление\":\"РешениеОбУстановленииОпеки\"}")]
		РешениеОбУстановленииОпеки = 1,//Решение об установлении опеки
		[EnumMember(Value = "{\"Ссылка\":\"5cd60a6d-7502-4f85-a78f-37e400db8f72\", \"Представление\":\"ИнойДокументПодтверждающийРождениеРебенка\"}")]
		ИнойДокументПодтверждающийРождениеРебенка = 2,//Иной документ подтверждающий рождение ребенка
		[EnumMember(Value = "{\"Ссылка\":\"b724f477-0a97-469e-8b65-c75a9885403a\", \"Представление\":\"СвидетельствоОСмерти\"}")]
		СвидетельствоОСмерти = 3,//Свидетельство о смерти
	}
	public static partial class ВидыПодтверждающихДокументовОтпускаПоУходу_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid СвидетельствоОРождении = new Guid("46b322b0-ba2c-2325-46d3-82d0d188b892");//Свидетельство о рождении
		public static readonly Guid РешениеОбУстановленииОпеки = new Guid("7381d0bc-a2e3-92d8-482f-fa37ff7daf3d");//Решение об установлении опеки
		public static readonly Guid ИнойДокументПодтверждающийРождениеРебенка = new Guid("e4378fa7-db00-728f-4f85-75025cd60a6d");//Иной документ подтверждающий рождение ребенка
		public static readonly Guid СвидетельствоОСмерти = new Guid("5ac7658b-8598-3a40-469e-0a97b724f477");//Свидетельство о смерти
		public static ВидыПодтверждающихДокументовОтпускаПоУходу Получить(this ВидыПодтверждающихДокументовОтпускаПоУходу Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static ВидыПодтверждающихДокументовОтпускаПоУходу Получить(this ВидыПодтверждающихДокументовОтпускаПоУходу Значение, Guid Ссылка)
		{
			if(Ссылка == СвидетельствоОРождении)
			{
				return ВидыПодтверждающихДокументовОтпускаПоУходу.СвидетельствоОРождении;
			}
			else if(Ссылка == РешениеОбУстановленииОпеки)
			{
				return ВидыПодтверждающихДокументовОтпускаПоУходу.РешениеОбУстановленииОпеки;
			}
			else if(Ссылка == ИнойДокументПодтверждающийРождениеРебенка)
			{
				return ВидыПодтверждающихДокументовОтпускаПоУходу.ИнойДокументПодтверждающийРождениеРебенка;
			}
			else if(Ссылка == СвидетельствоОСмерти)
			{
				return ВидыПодтверждающихДокументовОтпускаПоУходу.СвидетельствоОСмерти;
			}
			return ВидыПодтверждающихДокументовОтпускаПоУходу.ПустаяСсылка;
		}
		public static byte[] Ключ(this ВидыПодтверждающихДокументовОтпускаПоУходу Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this ВидыПодтверждающихДокументовОтпускаПоУходу Значение)
		{
			switch (Значение)
			{
				case ВидыПодтверждающихДокументовОтпускаПоУходу.СвидетельствоОРождении: return СвидетельствоОРождении;
				case ВидыПодтверждающихДокументовОтпускаПоУходу.РешениеОбУстановленииОпеки: return РешениеОбУстановленииОпеки;
				case ВидыПодтверждающихДокументовОтпускаПоУходу.ИнойДокументПодтверждающийРождениеРебенка: return ИнойДокументПодтверждающийРождениеРебенка;
				case ВидыПодтверждающихДокументовОтпускаПоУходу.СвидетельствоОСмерти: return СвидетельствоОСмерти;
			}
			return Guid.Empty;
		}
	}
}